import dayjs from 'dayjs'

export const DATE_FORMAT_TYPE = {
    DATE_TIME_FMT : 'YYYY-MM-DD HH:mm:ss',
    DATE_TIME_MINUTE_FMT : 'YYYY-MM-DD HH:mm',
    DATE_FMT : 'YYYY-MM-DD'
}

/**
 * 日期相关
 */
const TimeUtil = {
    /**
     * 获取当前时间 YYYY-MM-DD HH:mm:ss
     */
    getNowFormatString(){
        return dayjs(Date.now()).format(DATE_FORMAT_TYPE.DATE_TIME_FMT);
    },
    /**
     * 时间戳转换成可视字符串
     * @param time
     * @param format
     */
    formatDate(time, format = DATE_FORMAT_TYPE.DATE_TIME_FMT){
        return dayjs(time).format(format);
    },
    /**
     * 字符串时间转换为时间戳
     * @param formatDate
     */
    converDefaultTime(formatDate){
        return dayjs(formatDate).valueOf();
    },
    /**
     * 获取秒
     * @param date
     */
    getSecond(date = Date.now()){
        return dayjs(date).second();
    },
    /**
     * 获取分
     * @param date
     */
    getMinute(date = Date.now()){
        return dayjs(date).minute();
    },
    /**
     * 获取小时
     * @param date
     */
    getHour(date = Date.now()){
        return dayjs(date).hour();
    },
    /**
     * 获取是本月第几天
     * @param date
     */
    getDay(date = Date.now()){
        return dayjs(date).date();
    },
    /**
     * 获取当前月份
     * @param date
     */
    getMonth(date = Date.now()){
        return dayjs(date).month() + 1;
    },
    /**
     * 获取当前年份
     * @param date
     */
    getYear(date = Date.now()){
        return dayjs(date).year();
    },
    /**
     * 获取周几
     * @param date
     */
    getWeekDay(date = Date.now()){
        return dayjs(date).day();
    },
    /**
     * 获取中文星期几
     * @param date
     * @param prefix
     */
    getWeekDayChinese(date = Date.now(), prefix = '星期'){
        const weekDay = this.getWeekDay(date);
        return prefix + ['日', '一', '二', '三', '四', '五', '六'][weekDay];
    }
};

export default TimeUtil;
